/*****************************************************************************
*                     Organizacion de Datos - 75.06                          *
*                         Catedra Lic. Servetto                              *
*            Facultad de Ingenieria - Universidad de Buenos Aires            *
******************************************************************************/ 

#include "../Comun/Operacion.h"

#include "CapaMetadata.h"
#include "ConexionCapaConsulta.h"
//#include "ConexionCapaIndices.h"


#include <fstream>
#include <iostream>
#include <sstream>
#include <string>

using namespace std;
using namespace Comun;

int main(int argc, char* argv[])
{
	stringstream entrada;
	stringstream salida;
	// File.WaitForFile(Comun::NombreArchivoEntradaCapaFisica);

	stringstream * s = new stringstream();
	*s << "Transacciones/CapaMetadata/Entrada/" << argv[1] << ".txt";


	ifstream archivoEntrada(s->str().c_str());
	entrada << archivoEntrada.rdbuf();
	archivoEntrada.close();

	CapaMetadata::Aplicacion::Correr(&entrada, &salida);

	delete s;
	s = new stringstream();

	*s << "Transacciones/CapaMetadata/Salida/" << argv[1] << ".txt";

	ofstream archivoSalida(s->str().c_str());
	archivoSalida << salida.rdbuf();
	archivoSalida.close();

	// TODO: File.Delete(Comun::NombreArchivoEntradaCapaFisica);
	//}

	return 0;

}

namespace CapaMetadata
{

	void Aplicacion::Correr(stringstream* entrada, stringstream* salida)
	{
		ConexionCapaConsulta::EjecutarLlamada(entrada, salida);
	};

}
